# @Filename:    judge_element
# @Author:      王佳伟
# @Time:        2025-02-20 14:27
# @Describe:    元素判断
from selenium import webdriver
from selenium.webdriver.common.by import By

class FindElement:
    def __init__(self):
        # 创建一个Chrome浏览器的WebDriver示例
        self.driver = webdriver.Chrome()
        # ChromeOptions类提供了对Chrome浏览器各种选项进行配置的方法;
        # 在excludeSwitches参数中，将enable-logging指定为要排除的选项，表示不启用浏览器的日志功能
        # options = webdriver.ChromeOptions()
        # options.add_experimental_option('excludeSwitches', ['enable-logging'])
        # self.drive = webdriver.Chrome(options=options)
        # 最大化窗口
        self.driver.maximize_window()
        # 隐式等待，设置最大的等待时长，只对查找元素（find_elementXXX）生效
        self.driver.implicitly_wait(2)

    def method(self):
        """代码执行"""
        # 通过get()方法打开网页
        self.driver.get('http://192.168.100.210/zentao/')

        '''
        1、is_displayed():判断元素是否存在，结果是真或假
        1-1显示元素，在HTML里，在页面也显示，返回True，
        1-2隐藏元素，在HTML里，不在页面显示，返回Flase
        1-3不在HTML里，不存在这个元素，会报错
        '''

        # 判断输入框是否在页面中显示
        drive = self.driver.find_element(By.CSS_SELECTOR, '#account').is_displayed()
        print(f"元素是否显示:{drive}")

        # is_enabled(): 判断是否可用
        # 判断输入框是否可以输入
        drive = self.driver.find_element(By.CSS_SELECTOR, '#account').is_enabled()
        print(f"输入框是否可以输入:{drive}")

        # is_selected(): 判断是否选中，一般用于复选框或单选框的选中判断
        # 勾选保持登陆操作
        # self.driver.find_element(By.CSS_SELECTOR, '[name="keepLogin[]"]').click()
        drive = self.driver.find_element(By.CSS_SELECTOR, '[name="keepLogin[]"]').is_selected()
        if drive:
            print(f"已勾选:{drive}")
        else:
            print(f"未勾选:{drive}")

